# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'Yang'
__mtime__ = '2018/12/12 21:10'
# code is far away from bugs with the god animal protecting
    I love animals. They taste delicious.
              ┏┓      ┏┓
            ┏┛┻━━━┛┻┓
            ┃      ☃      ┃
            ┃  ┳┛  ┗┳  ┃
            ┃      ┻      ┃
            ┗━┓      ┏━┛
                ┃      ┗━━━┓
                ┃  神兽保佑    ┣┓
                ┃　永无BUG！   ┏┛
                ┗┓┓┏━┳┓┏┛
                  ┃┫┫  ┃┫┫
                  ┗┻┛  ┗┻┛
"""
import numpy as np
import pandas as pd
import pymysql
import time
import re
import pandas as pd
from sqlalchemy import create_engine

"""
小说,外国文学,文学,随笔,中国文学,经典,日本文学,散文,村上春树,诗歌,童话,儿童文学,古典文学,名著,王小波,杂文,余华,
张爱玲,当代文学,钱钟书,外国名著,鲁迅,诗词,茨威格,米兰·昆德拉,杜拉斯,港台,漫画,推理,绘本,青春,东野圭吾,科幻,
悬疑,言情,奇幻,武侠,日本漫画,推理小说,韩寒,耽美,亦舒,网络小说,三毛,安妮宝贝,阿加莎·克里斯蒂,科幻小说,金庸,
穿越,郭敬明,轻小说,青春文学,魔幻,几米,幾米,张小娴,J.K.罗琳,古龙,高木直子,沧月,校园,落落,张悦然,历史,心理学,
哲学,传记,文化,社会学,艺术,社会,设计,政治,建筑,宗教,电影,政治学,数学,中国历史,回忆录,思想,国学,人物传记,人文,
音乐,艺术史,绘画,戏剧,西方哲学,二战,军事,佛教,近代史,考古,自由主义,美术,爱情,旅行,成长,生活,心理,励志,女性,
摄影,教育,职场,美食,游记,灵修,健康,情感,两性,人际关系,手工,养生,家居,自助游,经济学,管理,经济,商业,金融,投资,
营销,理财,创业,广告,股票,企业史,策划,科普,互联网,编程,科学,交互设计,用户体验,算法,科技,web,UE,交互,通信,UCD,
神经网络,程序, 
"""
book_type_dict = {
    '文学': '小说,外国文学,文学,随笔,中国文学,经典,日本文学,散文,村上春树,诗歌,童话,儿童文学,古典文学,'
          '名著,王小波,杂文,余华,张爱玲,当代文学,钱钟书,外国名著,鲁迅,诗词,茨威格,米兰·昆德拉,杜拉斯,港台,',
    '流行': '漫画,推理,绘本,青春,东野圭吾,科幻,悬疑,言情,奇幻,武侠,日本漫画,推理小说,韩寒,耽美,亦舒,网络小说,'
          '三毛,安妮宝贝,阿加莎·克里斯蒂,科幻小说,金庸,穿越,郭敬明,轻小说,青春文学,魔幻,几米,幾米,张小娴,'
          'J.K.罗琳,古龙,高木直子,沧月,校园,落落,张悦然,',
    '文化': '历史,心理学,哲学,传记,文化,社会学,艺术,社会,设计,政治,建筑,宗教,电影,政治学,数学,中国历史,'
          '回忆录,思想,国学,人物传记,人文,音乐,艺术史,绘画,戏剧,西方哲学,二战,军事,佛教,近代史,考古,自由主义,美术,',
    '生活': '爱情,旅行,成长,生活,心理,励志,女性,摄影,教育,职场,美食,游记,灵修,健康,情感,两性,人际关系,手工,养生,家居,自助游,',
    '经管': '经济学,管理,经济,商业,金融,投资,营销,理财,创业,广告,股票,企业史,策划',
    '科技': '科普,互联网,编程,科学,交互设计,用户体验,算法,科技,web,UE,交互,通信,UCD,神经网络,程序'
}

time_start = time.time()
conn = create_engine('mysql+pymysql://root:123@localhost:3306/student?charset=utf8')
pd.set_option('display.max_rows', 5000)
pd.set_option('display.max_columns', 5000)
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='123', db='pc')
cursor = db.cursor()
cursor.execute('select * from douban_book_info')
data = cursor.fetchall()

df = pd.DataFrame(list(data),
                  columns='id,url,book_name,book_lable,book_author,book_publish,book_price,book_img,book_intro'.split(
                      ','))
df = df[df['book_price'].str.find('-') == -1]
df = df[df['book_price'] != '']

df['book_price'] = df['book_price'].apply(
    lambda x: float(re.findall('[^A-Za-z$\u4E00-\u9FA5][\d+\.\d+]*', x.replace(' ', ''))[0]))


def get_big_type(row):
    for k, v in book_type_dict.items():
        if v.find(row) != -1:
            return k


df['book_type'] = df['book_lable'].apply(get_big_type)
df['book_isbn'] = df['book_img'].apply(lambda x: x.replace('.jpg', ''))
df['book_count'] = df['book_img'].apply(lambda x: 100)
print(df.columns)
df_new = pd.DataFrame(df,
                      columns='id,book_isbn,book_name,book_price,book_count,book_author,book_publish,book_img,book_type,book_lable,book_intro'.split(
                          ','))
print(df_new.columns)
df_new['book_intro'] = df_new['book_intro'].apply(lambda x: x.replace("(展开全部)", ''))
df_new['book_outline'] = '无'
print(df_new['book_intro'])
df_new.to_sql('tb_books', con=conn, if_exists='replace', index=False)
# df_new.to_csv('book_info.csv')
# df_new.to_excel('book_info.xls')
time_end = time.time()
print('totally cost', time_end - time_start)
